﻿-- =============================================
-- Co so du lieu: FITHOU_EDU
-- =============================================
USE master
GO

IF  EXISTS (
	SELECT name 
		FROM sys.databases 
		WHERE name = N'FITHOU_EDU'
)
DROP DATABASE FITHOU_EDU
GO

CREATE DATABASE FITHOU_EDU
GO

use FITHOU_EDU
go
-- =============================================
-- Tao bang
-- =============================================

---Bảng Lớp học (Lưu thông tin lớp học)
IF(OBJECT_ID('tbl_Lophoc','U') is not null)
BEGIN 
	DROP TABLE tbl_Lophoc
END
CREATE TABLE tbl_Lophoc
(
	PK_iLophocID int identity primary key,
	sTenlop nvarchar(30) not null
)
GO

---Bảng Môn học (Lưu thông tin môn học)
IF(OBJECT_ID('tbl_Monhoc','U') is not null)
BEGIN 
	DROP TABLE tbl_Lophoc
END
CREATE TABLE tbl_Monhoc
(
	PK_iMonhocID int identity primary key,
	sTenmonhoc nvarchar(30) not null,
	iSohoctrinh int
)
GO

---Bảng Phòng học (Lưu thông tin phòng học)
IF(OBJECT_ID('tbl_Phonghoc','U') is not null)
BEGIN 
	DROP TABLE tbl_Phonghoc
END
CREATE TABLE tbl_Phonghoc
(
	PK_iPhonghocID int identity primary key,
	sTenphong nvarchar(45) not null,
	iSoghe int
)
GO


---Bảng Người dùng (Lưu thông tin người dùng vd: Admin, Giảng viên, Sinh viên)
IF(OBJECT_ID('tbl_Nguoidung','U') is not null)
BEGIN 
	DROP TABLE tbl_Nguoidung
END
CREATE TABLE tbl_Nguoidung
(
	PK_sNguoidungID varchar(20) primary key,
	sHoten nvarchar(50) not null,
	dNamsinh datetime,
	sDiachi nvarchar(100),
	sSodienthoai varchar(15),
	sEmail varchar(50),
	iTrangthai int default(0),
	sMatkhau varchar(50)
)
GO

---Bảng Sinh viên - Lớp (Cho biết sinh viên nào thuộc lớp nào)
IF(OBJECT_ID('tbl_Sinhvien_Lop','U') is not null)
BEGIN 
	DROP TABLE tbl_Sinhvien_Lop
END
CREATE TABLE tbl_Sinhvien_Lop
(
	FK_sSinhvienID varchar(20) references tbl_Nguoidung(PK_sNguoidungID),
	FK_iLophocID int references tbl_Lophoc(PK_iLophocID),
	primary key(FK_sSinhvienID, FK_iLophocID)
)
GO

---Bảng Điểm (Lưu thông tin điểm của sinh viên)
IF(OBJECT_ID('tbl_Diem','U') is not null)
BEGIN 
	DROP TABLE tbl_Diem
END
CREATE TABLE tbl_Diem
(
	PK_iDiemID int identity primary key,
	fDiemchuyencan float,
	fDiemdieukien float,
	fDiemthi float,
	iLanthu int not null default(1),
	iKyhoc int,
	FK_iMonID int references tbl_Monhoc(PK_iMonhocID) not null,
	FK_sSinhvienID varchar(20) references tbl_Nguoidung(PK_sNguoidungID),
	FK_sGiaovienchamID varchar(20) references tbl_Nguoidung(PK_sNguoidungID)
)
GO

--ALTER table tbl_Diem add FK_sGiaovienchamID varchar(20) references tbl_Nguoidung(PK_sNguoidungID)

---Bảng Lịch học (Lưu thông tin lịch học)
IF(OBJECT_ID('tbl_Lichhoc','U') is not null)
BEGIN 
	DROP TABLE tbl_Lichhoc
END
CREATE TABLE tbl_Lichhoc
(
	PK_iLichhocID int identity primary key,
	dNgayhoc datetime not null,
	sGiobatdau varchar(10),
	sGioketthuc varchar(10),
	iTrangthai int default(0) not null,
	FK_iLophocID int references tbl_Lophoc(PK_iLophocID) not null,
	FK_iPhonghocID int references tbl_Phonghoc(PK_iPhonghocID) not null,
	FK_iMonhocID int references tbl_Monhoc(PK_iMonhocID) not null,
	FK_sGiangvienID varchar(20) references tbl_Nguoidung(PK_sNguoidungID) not null
)
GO

---Bảng Thông báo (Lưu thông tin các thông báo)
IF(OBJECT_ID('tbl_Thongbao','U') is not null)
BEGIN 
	DROP TABLE tbl_Thongbao
END
CREATE TABLE tbl_Thongbao
(
	PK_iThongbaoID int identity primary key,
	sTieude nvarchar(50) not null,
	sNoidung ntext,
	dThoigiangui datetime,
	FK_sNguoiguiID varchar(20) references tbl_Nguoidung(PK_sNguoidungID) not null
)
GO


---Bảng Tài liệu (Lưu thông tin các tài liệu)
IF(OBJECT_ID('tbl_Tailieu','U') is not null)
BEGIN 
	DROP TABLE tbl_Tailieu
END
CREATE TABLE tbl_Tailieu
(
	PK_iTailieuID int identity primary key,
	sTentailieu nvarchar(50) not null,
	sTentep varchar(50) not null,
	sGhichu nvarchar(100),
	sTacgia nvarchar(100)
)
GO

---Bảng Thông báo - Người dùng (Cho biết thông báo gửi tới người dùng nào)
IF(OBJECT_ID('tbl_Thongbao_Nguoidung','U') is not null)
BEGIN 
	DROP TABLE tbl_Thongbao_Nguoidung
END
CREATE TABLE tbl_Thongbao_Nguoidung
(
	FK_iThongbaoID int references tbl_Thongbao(PK_iThongbaoID) not null,
	FK_sNguoidungID varchar(20) references tbl_Nguoidung(PK_sNguoidungID) not null,
	primary key(FK_iThongbaoID, FK_sNguoidungID)
)
GO

---Bảng Thông báo - Lớp (Cho biết thông báo gửi cho lớp nào)
IF(OBJECT_ID('tbl_Thongbao_Lop','U') is not null)
BEGIN 
	DROP TABLE tbl_Thongbao_Lop
END
CREATE TABLE tbl_Thongbao_Lop
(
	FK_iThongbaoID int references tbl_Thongbao(PK_iThongbaoID) not null,
	FK_iLophocID int references tbl_Lophoc(PK_iLophocID) not null,
	primary key(FK_iThongbaoID, FK_iLophocID)
)
GO

---Bảng Thông báo - Tài liệu (Cho biết thông báo có những tài liệu đính kèm nào)
IF(OBJECT_ID('tbl_Thongbao_Tailieu','U') is not null)
BEGIN 
	DROP TABLE tbl_Thongbao_Tailieu
END
CREATE TABLE tbl_Thongbao_Tailieu
(
	FK_iThongbaoID int references tbl_Thongbao(PK_iThongbaoID) not null,
	FK_iTailieuID int references tbl_Tailieu(PK_iTailieuID) not null,
	primary key(FK_iThongbaoID, FK_iTailieuID)
)
GO

---Bảng phản hồi (chứa thông tin về phản hồi của sinh viên và trả lời của giảng viên)
IF(OBJECT_ID('tbl_Phanhoidiem','U') is not null)
BEGIN 
	DROP TABLE tbl_Phanhoidiem
END
CREATE TABLE tbl_Phanhoidiem
(
	PK_iPhanhoidiemID int identity primary key,
	FK_iDiemID int references tbl_Diem(PK_iDiemID),
	FK_sNguoiguiID varchar(20) references tbl_Nguoidung(PK_sNguoidungID),
	dThoigiangui datetime default(getdate()),
	sTieude nvarchar(100) default('Phản hồi điểm'),
	sNoidung nvarchar(200),
	iTrangthai int default(0) --Trạng thái 0: chưa đọc, 1: đã đọc
)
GO


---Bảng bình luận(Chứa các bình luận của từng thông báo)
IF(OBJECT_ID('tbl_Binhluan','U') is not null)
BEGIN 
	DROP TABLE tbl_Binhluan
END
CREATE TABLE tbl_Binhluan
(
	PK_iBinhluanID int identity primary key,
	FK_iThongbaoID int references tbl_Thongbao(PK_iThongbaoID),
	FK_sNguoiguiID varchar(20) references tbl_Nguoidung(PK_sNguoidungID),
	dThoigianbinhluan datetime default(getdate()),
	sTieude nvarchar(100) default('Bình luận'),
	sNoidung nvarchar(200),
	iTrangthai int default(0)
)
GO


